#include <ros/ros.h>
#include <geometry_msgs/Twist.h>

/*
    编写 ROS 节点，控制小乌龟画圆
    准备工作:
        1.获取topic(已知: /turtle1/cmd_vel)
        2.获取消息类型(已知: geometry_msgs/Twist)
        3.运行前，注意先启动 turtlesim_node 节点

    实现流程:
        1.包含头文件
        2.初始化 ROS 节点
        3.创建发布者对象
        4.循环发布运动控制消息
*/

int main(int argc, char *argv[])
{
    setlocale(LC_ALL, "");
    // 初始化 ROS 节点
    ros::init(argc, argv, "mg_turtle");
    // 实例化 ROS 句柄
    ros::NodeHandle nh;
    // 创建发布者对象
    ros::Publisher pub = nh.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel", 1000);
    // 循环发布运动控制消息(组织消息)
    geometry_msgs::Twist msg;
    msg.linear.x = 1.0;
    msg.linear.y = 0.0;
    msg.linear.z = 0.0;

    msg.angular.x = 0.0;
    msg.angular.y = 0.0;
    msg.angular.z = 1.0;

    ros::Rate(10);
    while (ros::ok())
    {
        pub.publish(msg);
        ros::spinOnce();
    }
    

    return 0;
}

// 配置CMakeLists.txt
/*
    add_executable(文件名称
    src/文件名称.cpp
    )

    target_link_libraries(文件名称
    ${catkin_LIBRARIES}
    )
*/
